#ifndef POSITION_H_
#define POSITION_H_

struct Position {
public:
	Position();
	Position(const int & x, const int & y);

	inline int getX() const {
		return this->xCoordinate;
	}
	inline int getY() const {
		return this->yCoordinate;
	}

	//factory methods
	static Position center(const unsigned int & width,
		const unsigned int & height);
	Position left() const;
	Position up() const;
	Position right() const;
	Position down() const;

	friend bool operator ==(const Position & first, const Position & second);

private:
	int xCoordinate;
	int yCoordinate;
};

#endif /* POSITION_H_ */
